// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import BaseClass from '@api/meeting/model/MeetingInfoDto'
import API from './API'

const WORD = '会议室'

const trans = (i, base) => `0${(i / 2 | 0) + base}:${i % 2 ? '3' : '0'}0`.slice(-5)

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API: {
    MENU: ['__详情__', WORD], // 菜单
    ...API,
  },

  /**
   * 映射
   */
  MAP: {
    // 词语
    WORD,

    // 必须的字段，有值才会显示弹窗
    REQUIRED_KEY: 'id',

    // 弹窗属性
    MODEL_PROPS: {
      title: `${WORD}详情`,
      large: true,
      bgClose: true,
      noFooter: true,
    },

    /**
     * 时间列表
     */
    TIME_LIST: [
      Array(12).fill().map((_, i) => trans(i, 6)),
      Array(12).fill().map((_, i) => trans(i, 12)),
      Array(12).fill().map((_, i) => trans(i, 18)),
    ],

    /**
     * 鼠标悬浮的记录 ID
     */
    hoverId: '',
  },

  /**
   * 首要开关
   *
   * 1. 初始化完成时调用
   * 2. 提交后刷新时调用
   */
  MAIN_START: 'startOne', // 'startInfo' 或 'startList' 或 'startOne' 或 ''

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. setOne() 合并时使用
   * 3. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(BaseClass, {
    queryTime: CORE.timeNum(CORE.today()), // 查询日期
    tagMap: [], // 选中的时间对应的标签映射
    recordMap: [], // 选中的时间对应的记录映射
  }),
}
